MCU = -mmcu=attiny2313
CC = avr-gcc
CFLAGS = $(MCU) -Wall -W -Wstrict-prototypes
CFLAGS += -O3
CFLAGS += --std=c99 -DDEBUG 
LD = avr-gcc
LDFLAGS = $(MCU) -Wl,-M
#PRG = avrdude -c avrisp2 -P /dev/ttyUSB0 -p t2313
PRG = avrdude -c avr910 -P /dev/ttyUSB0 -b 115200 -p t2313 -x devcode=0x23

OBJS = hsfe10.o

OUT = hsfe10.out
SREC = hsfe10.srec
MAP = hsfe10.map
LST = hsfe10.lst
IHEX = hsfe10.hex

all: $(SREC)

$(SREC): $(OUT)
	avr-objcopy --output-target=srec $(OUT) $(SREC)
	avr-objcopy --output-target=ihex $(OUT) $(IHEX)
	avr-objdump --disassemble $(OUT) > $(LST)

flash-erase:
	$(PRG) -e

# lfuse = 0xc4 is 8 MHz internal osc, no CKDIV8, 14 CK + 0ms startup
# lfuse = 0xd4 is 8 MHz internal osc, no CKDIV8, 14 CK + 4.1ms startup
# lfuse = 0xe4 is 8 MHz internal osc, no CKDIV8, 14 CK + 65ms startup
# lfuse = 0xe0 is external osc, no CKDIV8, 14 CK + 65ms startup
# lfuse = 0xfd is xtal, no CKDIV8, 14 CK + 65ms startup
# lfuse - 0xff is xtal, no CKDIV8, 14 CK + 65ms startup, slow-rising power
flash-fuses:
	$(PRG) -U lfuse:w:0xff:m

read-fuses:
	$(PRG) -U lfuse:r:-:h -U hfuse:r:-:h -U efuse:r:-:h

flash-write: $(SREC)
	$(PRG) -U flash:w:$(SREC):s

flash: $(SREC)
	$(PRG) -e -U flash:w:$(SREC):s

$(OUT): $(OBJS)
	$(LD) $(OBJS) -o $(OUT) $(LDFLAGS) > $(MAP)

clean:
	rm -f $(OBJS) $(OUT) $(SREC) $(MAP) $(IHEX)

